package middle;

/**
 * 给定一个长度为 n 的整数数组height。有n条垂线，第 i 条线的两个端点是(i, 0)和(i, height[i])。
 *
 * 找出其中的两条线，使得它们与x轴共同构成的容器可以容纳最多的水。
 *
 * 返回容器可以储存的最大水量。
 *
 * 说明：你不能倾斜容器。
 *
 * 链接：https://leetcode.cn/problems/container-with-most-water
 * @author yuxuan.hu
 * */
public class ContainerWithMostWater {

    /**
     * n刷题。比较简单的对撞指针
     * 思路，就是移动指向值小的指针
     * */
    class Solution {
        public int maxArea(int[] height) {
            int left = 0;
            int right = height.length-1;
            int result = 0;
            while(left < right){
                int high = Math.min(height[left], height[right]);
                int area = high * (right-left);
                result = Math.max(result,area);
                if(height[left] <  height[right]){
                    left++;
                }else {
                    right--;
                }
            }
            return result;
        }
    }
}
